public class FSMStateBase
{
    public float timer = 0;
    protected readonly FSMStateController stateController;

    public FSMStateBase(FSMStateController stateController)
    {
        this.stateController = stateController;
    }

    public virtual void EarlyEnter() { }

    public virtual void Enter() { }

    public void _Update(float dt)
    {
        timer = timer + dt;
        Update(dt);
    }
    public virtual void Update(float dt) { }

    public virtual void Exit() { }

    public virtual bool FromAny() {
        return false;
    }
}